<?php  namespace Admin\Controller;


/**
 * 商品管理控制器
 */
class GoodsController extends CommonController
{
	protected $db;
	/**
	 * 构造方法
	 */
	public function __init()
	{
		$this->db = new \Common\Model\Goods;
	}
	/**
	 * 首页
	 */
	public function index()
	{
		//获取商品表数据
		$goodsData = Db::table('goods')->get();
		//分配数据
		View::with('goodsData',$goodsData);
		//载入首页
		View::make();
	}
	/**
	 * 添加
	 * 
	 */
	public function add()
	{
		if(IS_POST)
		{
			//p($_POST);die;
			if(!$this->db->store())
			{
				//添加失败
				View::error($this->db->getError());
			}else{
				//添加成功
				View::success('添加成功',U('index'));
			}
		}
		//获取分类数据
		$cateData = Db::table('category')->get();
		//树状结构
		$cateData = Data::tree($cateData,'cname','cid','pid');
		//分配数据到添加页面所属分类的位置处理
		View::with('cateData',$cateData);
		//获取品牌数据
		$brandData = Db::table('brand')->get();
		//分配数据到添加页面所属品牌位置处理
		View::with('brandData',$brandData);
		//载入添加页面
		View::make();
	}
	/**
	 * 异步调取规格和属性
	 */
	public function ajaxGetAttr()
	{
		if(IS_AJAX)
		{
			$type_tid = $_POST['type_tid'];
			//在类型属性表中，根据post提交的类型id获取数据
			//type_tid ,是类型属性表中的类型id
			$typeAttrData = Db::table('typeattr')->where('type_tid','=',$type_tid)->get();
			
			//把属性值转为数组
			foreach ($typeAttrData as $k => $v) {
				$typeAttrData[$k]['tavalue'] = explode('|', $v['tavalue']);
			}
//			echo "<pre>";
			//var_dump($typeAttrData);die;
			//返回给add页面success:function(data)接受 处理
			View::ajax($typeAttrData);
			//echo json_encode($typeAttrData);
		}
	}
	/**
	 * 异步上传
	 */
	public function ajaxUpload()
	{
		//上传
		$files = Upload::path("Upload/goods/".date('ymd'))->make();
		//p($files);
		//p($files);die;
		if($files)
		{
			//如果上传成功，返给页面处理
			View::ajax($files[0]);
		}
		//上传失败
		View::ajax('上传失败');	
	}
	/**
	 * 异步删除图片
	 */
	public function delImg(){
		if(IS_AJAX){
			$path = $_POST['path'];
			if(unlink($path))
			{
				View::ajax(1);
			}
			View::ajax(0);
		}
	}
	
	/**
	 * 编辑
	 */
	public function edit()
	{
		//获取要编辑的gid
		$gid = Q('get.gid',0,'intval');
		if(IS_POST)
		{
			//p($_POST);die;
			if(!$this->db->edit($gid))
			{
				//添加失败
				View::error($this->db->getError());
			}else{
				//添加成功
				View::success('编辑成功',U('index'));
			}
		}
		//获取旧数据并分配编辑页面
		//$gid = Q('get.gid',0,'intval');
		//商品表
		$oldGoodsData = Db::table('goods')						
						->join('category','category_cid','=','cid')
		                ->where('gid','=',$gid)->first();
		//($oldGoodsData);
		View::with('oldGoodsData',$oldGoodsData);
		//所属分类表数据
		$oldCateData = Db::table("category")->get();					   
		//p($oldCateData);
		//变树状结构
		$oldCateData = Data::tree($oldCateData,'cname','cid','pid');
		//p($oldCateData);
		View::with('oldCateData',$oldCateData);
		//获取所属品牌数据
		$oldBrandData = Db::table('brand')->get();				        
		//p($oldBrandData);
		View::with('oldBrandData',$oldBrandData);
		//商品详情表
		$oldDetail = Db::table('detail')->where('goods_gid','=',$gid)->first();
		//p($oldDetail);
		//分配变量到对应位置
		View::with('oldDetail',$oldDetail);
		$oldDetail_big = $oldDetail['big'];
		//转成数组
		$oldDetail_big = explode("|", $oldDetail_big);		
		//分配变量到对应位置
		View::with('oldDetail_big',$oldDetail_big);
		//获取商品属性表和类型属性表关联后的数据
		$oldData = Db::table('goods_attr')
						         ->join('typeattr','typeattr_taid','=','taid')
								 ->where('goods_gid','=',$gid)
								 ->get();
		
		foreach($oldData as $k=>&$v){
			$v['tavalue'] = explode('|',$v['tavalue']); 
		}
		//p($oldData);
		//$v = explode("|", $oldData['tavalue']);
		//p($v);
		//分配变量到对应位置
		View::with('oldData',$oldData);						 
		//载入页面
		View::make();
	}
	/**
	 * 删除
	 */
	public function del()
	{
		//获取要删除的gid
		$gid = Q('get.gid',0,'intval');
		//执行删除
		$this->db->del($gid);
		//删除成功后跳转
		$this->success('删除成功',U('index'));
	}
}
